package com.zisu.a996.resource.afterJDK8;

/**
 * @Author: 蔡翔
 * @Date: 2019/11/29 10:26
 * @Version 1.0
 */

import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 基于jdk7之后， 实现正确关闭流资源的方法
 * try - with - resource
 **/
public class newFileCopyTest {
    @Test
    public void copyFile() {
        /**
         * 1.创建输入/输出流
         * 2.执行文件拷贝，读取文件内容。写入另一个文件中
         * 3.** 关闭文件流资源 **
         **/
        //定义输入输出数据 (精确到文件)
        String originalURL = "E:\\work\\学习demo\\a996\\src\\main\\java\\com\\zisu\\a996\\lib\\FileCopyTest.java";
        String targetURL = "E:\\work\\学习demo\\a996\\src\\main\\java\\com\\zisu\\a996\\targetTest\\newTarget.txt ";

        //初始化输入/输出流对象
        try (
                //卸载try()里面 的流资源 会自动的被GC回收。就不用再显示的关闭这个流了。
                FileInputStream originFileInputStream = new FileInputStream(originalURL);
                FileOutputStream targetFileOutputStream = new FileOutputStream(targetURL);

        ) {
            int content;

            //循环迭代
            while ((content = originFileInputStream.read()) != -1){
                targetFileOutputStream.write(content);
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
